package com.dinadi.yidi.utils;

import android.content.Context;
import android.graphics.Bitmap;
import android.widget.ImageView;

import com.dinadi.yidi.ui.MyApplication;
import com.squareup.picasso.Picasso;
import com.squareup.picasso.Transformation;

import java.io.File;

/**
 * Created by Tian on 2016/10/25.
 * 图片加载的工具类
 */

public class ImageUtils {

    /**
     * 根据url加载网络图片
     * @param url 图片的url
     * @param imageView 显示图片的控件
     */
    public static void loadImageView(Context context,String url, ImageView imageView) {
        Picasso.with(context).
                load(url).
                into(imageView);
    }

    /**
     *
     * @param url 图片的路径
     * @param width 图片的宽度
     * @param height 图片的高度
     * @param imageView 显示图片的控件
     */
    public static void loadImageViewSize(Context context,String url,int width,int height,ImageView imageView){
        Picasso.with(context).load(url).
                resize(width,height).
                centerCrop().
                into(imageView);
    }

    /**
     * 加载网络图片，同时存在默认图片
     * @param url 网络图片路径
     * @param error 错误图片显示
     * @param holder 替代图片的显示
     * @param imageView 显示图片的控件
     */
    public static void loadImageView(Context context,String url,int error,int holder,ImageView imageView){
        Picasso.with(context).load(url).
                placeholder(holder).
                error(error).
                into(imageView);
    }

    /**
     * 加载本地资源文件
     * @param res 本地资源
     * @param imageView 显示的控件
     */
    public static void loadImageView(Context context,int res,ImageView imageView){
        Picasso.with(context).load(res).
                into(imageView);
    }

    /**
     * 加载本地文件的图片
     * @param file 本地文件
     * @param imageView 显示图片的控件
     */
    public static void loadImageView(Context context,File file,ImageView imageView){
        Picasso.with(context).load(file).
                into(imageView);
    }


    /**
     * 自定义剪裁图片
     * @param url
     * @param mImageView
     */
    public static void loadImageViewCrop(Context context,String url, ImageView mImageView) {
        Picasso.with(context).load(url).
                transform(new CropImageView()).
                into(mImageView);
    }
    public static void loadImageViewCrop(Context context,int res, ImageView mImageView) {
        Picasso.with(context).load(res).
                transform(new CropImageView()).
                into(mImageView);
    }


    /**
     * 自定义图片裁剪
     */
    public static class CropImageView implements Transformation {

        @Override
        public Bitmap transform(Bitmap source) {
            int size = Math.min(source.getWidth(), source.getHeight());
            int x = (source.getWidth() - size) / 2;
            int y = (source.getHeight() - size) / 2;

            Bitmap newBitmap = Bitmap.createBitmap(source, x, y, size, size);

            if (newBitmap != null) {
                //内存回收
                source.recycle();
            }
            return newBitmap;
        }

        @Override
        public String key() {
            return "lgl";
        }
    }



}
